Skip to content

🍒[clang][modules] Invalidate module cache when SDKSettings.json changes #10679

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
May 20, 2025

Conversation

jansvoboda11
Copy link

This PR adds the %sdk/SDKSettings.json file to the PCM input file table, so that the PCM gets invalidated when the file changes. This is necessary for availability checks to work correctly and for the include-tree to be rebuilt so that its file list agrees with other include-trees (coming from the module cache or the primary TU).

rdar://149868539

@jansvoboda11 jansvoboda11 requested a review from akyrtzi May 14, 2025 15:57
@jansvoboda11 jansvoboda11 requested a review from a team as a code owner May 14, 2025 15:57
@jansvoboda11
Copy link
Author

@swift-ci please test

llvm#139751)

This PR adds the `%sdk/SDKSettings.json` file to the PCM input file
table, so that the PCM gets invalidated when the file changes. This is
necessary for availability checks to work correctly.
The input file section in module files only stored files loaded into the `SourceManager`. When rebuilding the module cache, include-trees also include other files, like the SDKSettings.json file. If we don't invalidate the module cache when that file changes, the corresponding include-trees won't agree with the primary TU include-tree on the file contents. This was fixed in llvm#139751 and this PR adds an include tree test.

I intentionally suppress reporting of this new file in tests, so that I don't have go updating ~all of them. This file is getting reported by the scanning C API, so that the build system is given the ability to eventually act on this file being out-of-date.

rdar://149868539
This fixes the Index/Store/handle-prebuilt-module.m test that started failing after llvm#139751.
@jansvoboda11 jansvoboda11 force-pushed the jan_svoboda/release-6.2-sdk-settings-json branch from 57b1430 to 7bb8a75 Compare May 19, 2025 15:49
@jansvoboda11
Copy link
Author

@swift-ci please test

@jansvoboda11
Copy link
Author

swiftlang/swift#81620
@swift-ci please test

@jansvoboda11
Copy link
Author

swiftlang/swift#81620
@swift-ci please test Windows Platform

@akyrtzi akyrtzi merged commit 9a6e99f into swift/release/6.2 May 20, 2025
3 checks passed
@akyrtzi akyrtzi deleted the jan_svoboda/release-6.2-sdk-settings-json branch May 20, 2025 19:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants